<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/vue-2.6.12.js"></script>
</head>
<body>
    <div id="app">
        <input type="text" v-model="username">
    </div>

    <script>
      


        const vm = new Vue({
            el: '#app',
            data: {
                username: ''
            },
            // 所有的侦听器，都应该被定义到watch节点下，侦听器本质上是一个函数，要监视那个数据的变化，就把数据的名称作为方法名即可
            watch: {
                // 监听器username值的变化
                // newVal 是变化后的新值， oldVal是变化之前的旧值  形参顺序： 新值在前， 旧值在后

                // username(newVal, oldVal) {
                //     console.log(newVal,'--------', oldVal);
                // }
                // 定义对象格式的侦听器
                username: {
                    // handler  : 函数名是固定写法
                    handler(newVal, oldVal) {
                        console.log(newVal,'--------', oldVal);
                    },
                    // immediate 选项的默认值是false， 起作用是 控制侦听器是否自动触发一次
                    immediate: true
                }
            }
        })
    </script>
</body>
</html>